package cn.hyatt.auth.service;

import cn.hyatt.auth.dto.auth.AuthInfo;
import jakarta.servlet.http.HttpServletRequest;

import java.util.Optional;

/**
 * 身份验证缓存服务-接口
 * @author hyatt
 */
public interface AuthCacheService {

    /**
     * 获取缓存验证码
     *
     * @param request Http请求
     * @return 结果
     */
    Optional<String> getCaptcha(HttpServletRequest request);

    /**
     * 保存缓存验证码
     *
     * @param sessionId sessionId
     * @param captcha   验证码
     */
    void saveCaptcha(String sessionId, String captcha);

    /**
     * 获取缓存令牌
     *
     * @param userId 用户Id
     * @return 结果
     */
    Optional<AuthInfo> getAuthInfo(Long userId);

    /**
     * 保存 Token
     *
     * @param userId 用户Id
     * @param authInfo  Token
     */
    void saveAuthInfo(Long userId, AuthInfo authInfo);
}
